#pragma once

#include <boost/noncopyable.hpp>
#include "../texturing/texture2dmap.h"
#include "../shading/phongmaterial.h"

namespace GLC {

class CModelMaterial : private boost::noncopyable
{
public:
    CModelMaterial();

    // Добавить текстурную карту №1 к материалу
    TextureMap & AddTextureMap1(Texture2DRef texture);

    // Связана ли с материалом текстурная карта №1?
    bool HasTextureMap1()const;

    // Получить текстурную карту №1
    TextureMap const& GetTextureMap1()const;
    TextureMap & GetTextureMap1();

    // Получить материал OpenGL
    PhongMaterial & GetMaterial();
    PhongMaterial const& GetMaterial()const;

    // Материал видим с лицевой и нелицевой грани?
    bool IsTwoSided()const;
    void SetTwoSided(bool value);

private:
    TextureMap	_textureMap1;
    PhongMaterial _material;
    bool _twoSided;
};

} // namespace GLC
